package com.example.java.service;

import com.example.java.pojo.User;
import com.example.java.pojo.UserAddress;
import com.example.java.pojo.dto.UserDto;

import java.util.List;

public interface IUserService {
    /**
     * 注册用户
     *
     * @param user 参数
     * @return
     */
    User registerUser(UserDto user);

    /**
     * 用户登录
     *
     * @param user 参数
     * @return
     */
    User loginUser(UserDto user);

    /**
     * 查询用户所有信息
     */
    User getUserinfo(UserDto user);

    /**
     * 添加一个账号
     *
     * @param user 参数
     * @return
     */
    User addUser(UserDto user);

    /**
     * 禁用一个用户
     *
     * @param user 修改用户对象
     * @return
     */
    User banUser(UserDto user);

    /**
     * 查询
     * @param id 用户id
     * @return
     */
    User getUser(Integer id);

    /**
     * 修改用户的信息
     * @param user 修改用户对象
     * @return
     */
    User editUser(UserDto user);

    /**
     * 删除用户
     *
     * @param id
     */
    void deleteUser(Integer id);

    /**
     * 查询一个账户的所有有效地址
     *
     * @param user 修改用户对象
     * @return
     */
    List<UserAddress> getUserAllAddresses(UserDto user);
}
